In general, instructions are executed either synchronously or asynchronously. That is, hardware conventionally executes program instructions either in synchronism therewith or in an asynchronous fashion. However, a data processing system is disclosed in Japanese Patent Laid-Open No. Hei 6-4490 which executes instructions both synchronously and asynchronously. In manipulating messages, the disclosed system uses a SEND MESSAGE instruction that may be executed synchronously or asynchronously. Message manipulation is started and controlled by the SEND MESSAGE instruction and by information from a message manipulation block in main storage. The manipulation consists of executing the command designated in a message command block. Response information generated by the message manipulation is placed into a message response block in the main storage. An A bit (asynchronous bit) in the message manipulation block, designated by a program, causes a message sending function to be carried out either synchronously or asynchronously with respect to the SEND MESSAGE instruction. Specifically, the message sending function is executed in synchronism with the SEND MESSAGE instruction when the A bit is set to 0, and it is executed asynchronously if the A bit is set to 1. The SEND MESSAGE instruction designates one inter-system (I/S) subchannel for message manipulation involving the transfer of data, the message and a response between systems.
The execution of a message manipulation may involve a plurality of sending buffers paired with a plurality of receiving buffers. A typical setup for use with the paired buffers is disclosed in Japanese Patent Laid-Open No. Hei 6-85877 as "Data processing system having high-performance communication channels and operation recovery method for use with the same."
A program may issue an asynchronous SEND MESSAGE instruction to an I/S subchannel (No.=a) of a message channel unit. In such a case, if the message channel unit is currently executing a SEND MESSAGE instruction on another I/S subchannel, the channel unit is busy with respect to the received asynchronous SEND MESSAGE instruction and does not execute the latter. Then the SEND MESSAGE instruction designated for the I/S subchannel (No.=a) in question is entered into a process queue within the system. Thereafter, the instruction is dequeued from the queue for reexecution. When an attempt is made to reexecute the SEND MESSAGE instruction on the targeted I/S subchannel (No.=a), the channel unit may still be executing another SEND MESSAGE instruction on another I/S subchannel. In that case, the SEND MESSAGE instruction is again placed into the process queue in the system. The steps are repeated until the SEND MESSAGE instruction in question is carried out. The concept involved in the above process is the same as that of asynchronous instructions for known I/O operations.
Unlike the asynchronous SEND MESSAGE instruction, a synchronous SEND MESSAGE instruction designated for one I/S subchannel cannot be executed by the message channel unit if the channel unit is carrying out another SEND MESSAGE instruction on another I/S subchannel. This is because the SEND MESSAGE instruction, synchronous in nature, cannot be placed into a process queue. In that case, the attempt to execute the instruction fails and the failure is reported to the program.
One message channel unit may be shared by a plurality of operating systems, as disclosed by Japanese Patent Laid-Open No. Hei 6-35725 in the form of "Method and system for sharing input/output resources." When one operating system issues an instruction to such a shared message unit, another operating system may be already occupying the message channel unit. Thus, the possibility of the synchronous SEND MESSAGE instruction being unexecutable is even higher than otherwise. A failure to execute any synchronous SEND MESSAGE instruction requires suitable processing for recovery. The result is a lower level of system efficiency.
The data processing system disclosed in Japanese Patent Laid-Open No. Hei 6-4490 provides means for synchronously performing message handling in order to reduce the system overhead. The disclosed system is thus likely to encounter more cases of handling synchronous SEND MESSAGE instructions. As mentioned, the synchronous SEND MESSAGE instruction is more likely to be denied execution than the asynchronous SEND MESSAGE instruction.
The "data processing system having high-performance communication channels and operation recovery method for use with the same" disclosed in Japanese Patent Laid-Open No. Hei 6-85877 involve the use of a plurality of sending buffers in a message channel path unit. The sending buffers are paired with a plurality of receiving buffers located inside a structured external storage device. The sending-receiving buffer pairs correspond to a plurality of message manipulations. In this setup, one message channel unit is supposed to permit multiple message manipulations. However, since none of the pairs of sending and receiving buffers is assigned specifically to synchronous SEND MESSAGE instructions, if all buffer pairs happen to be busy, it is still impossible to execute any synchronous SEND MESSAGE instruction.
It is therefore an object of the present invention to reduce the probability that synchronous SEND MESSAGE instructions cannot be executed.